'\" t
.TH "NSS\-MYHOSTNAME" "8" "" "systemd 231" "nss-myhostname"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nss-myhostname, libnss_myhostname.so.2 \- 为本地配置的系统主机名提供解析功能
.SH "SYNOPSIS"
.PP
libnss_myhostname\&.so\&.2
.SH "描述"
.PP
\fBnss\-myhostname\fR
是一个
\fBglibc\fR(GNU C Library) NSS(Name Service Switch) 插件， 提供了解析本地配置的系统主机名的功能。 所谓"本地配置的系统主机名"其实就是
\fBgethostname\fR(2)
函数的返回值。 该模块的解析规则如下：
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
本机的主机名 将会被解析为所有本地IP地址，并按照他们所属的 scope 排序。 如果 scope 不存在，则会被解析为本地回环接口上的 IPv4 127\&.0\&.0\&.2 以及 IPv6 ::1
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
"localhost"
与
"localhost\&.localdomain"
以及所有以
"\&.localhost"
或
"\&.localhost\&.localdomain"
结尾的主机名， 都会被解析为 127\&.0\&.0\&.1 与 ::1
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
"gateway"
会被 解析为当前所有的默认网关地址， 并按照地址的数字顺序排序。 这样就为当前网关分配了一个固定的主机名， 从而可以让应用程序在不关心网络配置的情况下，直接引用网关。
.RE
.PP
许多软件依赖于存在一个可以永远被解析的本地主机名。 当使用动态主机名的时候， 传统的做法是在主机名发生变化的同时修改
/etc/hosts
文件。 这种做法的缺点在于要求
/etc
目录必须是可写的， 而且有可能在修改
/etc/hosts
文件的同时， 系统管理员也正在编辑它。启用
\fBnss\-myhostname\fR
之后， 就可以不必修改
/etc/hosts
文件。更进一步， 在许多系统上甚至无需存在这个文件。
.PP
要激活NSS模块，可将
"myhostname"
添加到
/etc/nsswitch\&.conf
文件中以
"hosts:"
开头的行里面。
.PP
建议将
"myhostname"
放置在
nsswitch\&.conf
文件中以
"hosts:"
开头的行的末尾，以确保优先使用传统的基于DNS与
/etc/hosts
文件的解析方法。
.SH "例子"
.PP
下面是一个正确开启了
\fBnss\-myhostname\fR
插件的
/etc/nsswitch\&.conf
文件的例子：
.sp
.if n \{\
.RS 4
.\}
.nf
passwd:         compat mymachines
group:          compat mymachines
shadow:         compat

hosts:          files mymachines resolve \fBmyhostname\fR
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
.fi
.if n \{\
.RE
.\}
.PP
可以使用
\fBglibc\fR
软件包中的
\fBgetent\fR
工具检查配置的有效性：
.sp
.if n \{\
.RS 4
.\}
.nf
$ getent ahosts `hostname`
::1       STREAM omega
::1       DGRAM
::1       RAW
127\&.0\&.0\&.2       STREAM
127\&.0\&.0\&.2       DGRAM
127\&.0\&.0\&.2       RAW
.fi
.if n \{\
.RE
.\}
.PP
本例中的本地主机名是
\fIomega\fR
.SH "参见"
.PP
\fBsystemd\fR(1),
\fBnss-resolve\fR(8),
\fBnss-mymachines\fR(8),
\fBnsswitch.conf\fR(5),
\fBgetent\fR(1)
.\" manpages-zh translator: 金步国
.\" manpages-zh comment: 金步国作品集：http://www.jinbuguo.com
